package cn.minimelon.api.mapper.module;


import cn.minimelon.api.domain.module.po.DataProp;
import cn.minimelon.api.domain.module.vo.DataModelVO;
import cn.minimelon.api.domain.module.vo.DataPropVO;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 数据属性 数据层
 *
 * @author hiro
 */
@Mapper
public interface DataPropMapper extends BaseMapper<DataProp> {
    /**
     * 查询主题配置信息
     *
     * @param dataProp 属性条件
     * @return 主题配置信息
     */
    DataPropVO selectEntity(DataProp dataProp);

    /**
     * 查询数据属性列表
     *
     * @param dataProp 属性条件
     * @return 数据属性集合
     */
    List<DataPropVO> selectEntityList(DataPropVO dataProp);

    /**
     * 查询数据属性列表
     *
     * @param dataProp 属性条件
     * @return 数据属性集合
     */
    List<DataPropVO> selectSimpleList(DataPropVO dataProp);

    /**
     * 根据编码查询数据属性信息
     *
     * @param modelCode 模型编码
     * @param code 编码
     * @return 数据属性信息
     */
    DataPropVO selectByCode(@Param("modelCode") String modelCode, @Param("code") String code);

    /**
     * 根据编码查询数据属性信息
     *
     * @param modelCode 模型编码
     * @return 数据属性信息
     */
    List<DataPropVO> selectListByModelCode(@Param("modelCode") String modelCode);

    /**
     * 删除数据属性
     *
     * @param modelCode 模型编码
     */
    void deleteByModelCode(String modelCode);

    /**
     * 批量更新隐藏列或者索引列
     */
    void updateColById(DataPropVO it);

    List<DataPropVO> selectTplPropList(DataModelVO dataModel);
}
